package cn.wolfcode.wolf2w.service;

import cn.wolfcode.wolf2w.domain.Strategy;
import cn.wolfcode.wolf2w.domain.Travel;
import cn.wolfcode.wolf2w.query.TravelQueryObject;
import cn.wolfcode.wolf2w.util.TravelStatisVO;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 服务接口
 */
public interface ITravelService {

    /**
     * 增加
     */
    void insert(Travel travel);

    /**
     * 删除
     */
    void delete(String id);

    /**
     * 修改
     */
    void update(Travel travel);

    /**
     * 查询
     */
    Travel selectOne(String id);

    /**
     * 查询全部
     */
    List<Travel> selectAll();

    /**
     * 分页查询
     * @param q
     * @return
     */
    Page<Travel> query(TravelQueryObject q);

    /**
     * 审核处理
     * @param id
     * @param state
     */
    void audit(String id, int state);

    /**
     * 保存或编辑
     * @param travel
     */
    void saveOrUpdate(Travel travel);

    /**
     * 通过当前登录用户id查询出所有的游记
     * @param id
     * @return
     */
    List<Travel> queryByUserId(String id);

    /**
     * 收藏数加一
     * true：收藏成功
     * false：取消收藏
     * @param travelId
     * @param id
     * @return
     */
    boolean travelId(String travelId, String id);

    /**
     * 获取vo对象
     * @param travel
     * @return
     */
    TravelStatisVO getTravelStatisVO(Travel travel);

    /**
     * 设置vo对象
     * @param travel
     * @param travelStatisVO
     */
    void setTravelStatisVO(Travel travel,TravelStatisVO travelStatisVO);

    /**
     * 通过目的地的名称查出所有的游记
     * @param name
     * @return
     */
    List<Travel> queryByDestName(String name);

    ///**
    //    // * 进行编辑
    //    // * @param id
    //    // * @return
    //    // */
    //    //Travel input(String id);
}
